home *** CD-ROM | disk | FTP | other *** search
/ PC go! 2008 April / PCgo 2008-04 (DVD).iso / interface / contents / demoversionen_3846 / 13664 / files / Data1.cab / pltapi.cpp < prev    next >
Encoding:
C/C++ Source or Header  |  2004-05-17  |  2.5 KB  |  107 lines

  1. /******************************************************************/
  2. /*                                                                */
  3. /*                      TurboCAD for Windows                      */
  4. /*                   Copyright (c) 1993 - 2001                    */
  5. /*             International Microcomputer Software, Inc.         */
  6. /*                            (IMSI)                              */
  7. /*                      All rights reserved.                      */
  8. /*                                                                */
  9. /******************************************************************/
  10.  
  11. #include "stdafx.h"
  12.  
  13. #include "PalDlg.h"
  14.  
  15. #include "resource.h"
  16.  
  17. UINT WINAPI PltGetHelpID()
  18. {
  19.     return IDD_PALDLG;
  20. }
  21. // Get description of custom palette
  22. BSTR        WINAPI PltGetDescription()
  23. {
  24.     AFX_MANAGE_STATE(AfxGetStaticModuleState());
  25.  
  26.     CString cstrDesc;
  27.     cstrDesc.LoadString(IDS_DESCRIPTION);
  28.  
  29.     return cstrDesc.AllocSysString();
  30. }
  31. //// Get name of custom palette (command name)
  32. BSTR        WINAPI PltGetName()
  33. {
  34.     AFX_MANAGE_STATE(AfxGetStaticModuleState());
  35.  
  36.     CString cstrName;
  37.     cstrName.LoadString(IDS_NAME);
  38.  
  39.     cstrName += "#CMD_SDKCUSTOMPALETTE";
  40.  
  41.     return cstrName.AllocSysString();
  42. }
  43. // get toolbar icon
  44. IDispatch*    WINAPI PltGetPicture(BOOL bLargeButton, BOOL bMonochrome)
  45. {
  46.     AFX_MANAGE_STATE(AfxGetStaticModuleState());
  47.  
  48.     LPTSTR IDB = 0;
  49.  
  50.     if (bLargeButton)
  51.     {
  52.         IDB = MAKEINTRESOURCE(IDB_PLT32);
  53.     }
  54.     else
  55.     {
  56.         IDB = MAKEINTRESOURCE(IDB_PLT16);
  57.     }
  58.  
  59.  
  60.     IDispatch *pIPictDisp = NULL;
  61.  
  62.     HBITMAP hbmpPal = ::LoadBitmap(AfxGetResourceHandle(), IDB);
  63.  
  64.     PICTDESC pict;
  65.     pict.cbSizeofstruct = sizeof(pict);
  66.     pict.picType = PICTYPE_BITMAP;
  67.     pict.bmp.hbitmap = hbmpPal;
  68.     pict.bmp.hpal = NULL;
  69.  
  70.     VERIFY(SUCCEEDED(OleCreatePictureIndirect(&pict, IID_IDispatch, TRUE, (void**)&pIPictDisp)));
  71.     return pIPictDisp;    
  72. }
  73.  
  74. HINSTANCE MyGetResourceHandle();
  75.  
  76. HWND        WINAPI PltCreateWindow(HWND hwndParent, long nID)
  77. {
  78.     AFX_MANAGE_STATE(AfxGetStaticModuleState());
  79.  
  80.     HINSTANCE hResOld = AfxGetResourceHandle();
  81.     AfxSetResourceHandle(MyGetResourceHandle());
  82.  
  83.     HWND hwndPal = NULL;
  84.  
  85.     CPalDlg *pDlg = new CPalDlg;
  86.     CWnd *pParentWnd = CWnd::FromHandle(hwndParent);
  87.  
  88.     if (pDlg->Create(IDD_PALDLG, pParentWnd))
  89.         hwndPal = pDlg->GetSafeHwnd();
  90.  
  91.  
  92.     AfxSetResourceHandle(hResOld);
  93.  
  94.     return hwndPal;
  95. }
  96.  
  97. VARIANT    WINAPI PltQuery(VARIANT varQuery)
  98. {
  99.     VARIANT    varRet;
  100.     VariantInit(&varRet);
  101.     VariantClear(&varRet);
  102.  
  103.     varRet.vt = VT_R4;
  104.     varRet.fltVal = 7.1;
  105.  
  106.     return varRet;
  107. }